using UnityEngine;

public abstract class BaseBehaviour : MonoBehaviour 
{
	private void Start()
	{
		start();
	}

	protected virtual void start()
	{

	}
	
	private void Update()
	{
		update(Time.deltaTime);
	}

	protected virtual void update(float deltaTime)
	{

	}

	private void FixedUpdate()
	{
		fixedUpdate(Time.deltaTime);
	}

	protected virtual void fixedUpdate(float deltaTime)
	{

	}

	private void LateUpdate()
	{
		lateUpdate();
	}

	protected virtual void lateUpdate()
	{
		
	}

    protected virtual void sendMessage(string methodName)
    {
        SendMessage(methodName);
    }

    public bool isActive()
    {
        return gameObject.active;
    }

	public new void active()
	{
		gameObject.active = true;
	}

	public void inactive()
	{
		gameObject.active = false;
	}

    public void disableBehaviour()
    {
        enabled = false;
    }
}
